package com.liu.blindBox.mapper;

import com.liu.blindBox.entity.qo.BlindBoxInfoQO;
import com.liu.blindBox.entity.vo.BlindBoxInfoVO;
import com.liu.blindBox.entity.vo.BlindBoxTypeInfoVO;
import com.liu.blindBox.entity.vo.SalesSituationVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface MerchantBlindBoxMapper {

    /**
     * 增加商品
     * @param blindBoxInfoQO
     */
    int insertBlindBoxInfo(@Param("blindBoxInfoQO") BlindBoxInfoQO blindBoxInfoQO);

    /**
     * 查询已经存在的盲盒名字
     * @return
     */
    String selectBlindBoxNames(@Param("blindBoxName") String blindBoxName);

    /**
     * 更新盲盒信息
     * @param blindBoxInfoQO
     * @return
     */
    int updateBlindBoxInfo(@Param("blindBoxInfoQO") BlindBoxInfoQO blindBoxInfoQO);

    /**
     * 删除盲盒
     * @param blindBoxId
     * @return
     */
    int deleteBlindBox(@Param("userId") String userId, @Param("blindBoxId") String blindBoxId);

    /**
     * 根据用户id查询盲盒
     * @param userId
     * @return
     */
    List<BlindBoxInfoVO> queryBlindBoxInfoByUserId(@Param("userId") String userId,@Param("keyword") String keyword);

    /**
     * 获取对应用户盲盒的销售情况
     * @param startTime
     * @param endTime
     * @return
     */
    List<SalesSituationVO> querySalesSituationByUserId(@Param("userId") String userId, @Param("startTime") String startTime,
                                                       @Param("endTime") String endTime,@Param("keyword") String keyword);

    /**
     * 获取所有的盲盒类型
     */
    List<BlindBoxTypeInfoVO> queryBlindBoxType();

    /**
     * 通过id获取盲盒
     * @param blindBoxId
     * @return
     */
    BlindBoxInfoQO queryBlindBoxInfo(String blindBoxId);
}
